/*
A standard class derived from CLivingEntity.
Based on humanoids: two arms, two legs, one head
one torso, arms hold stuff etc.
*/

///@todo Phase out, we want to keep derived classes of CLivingEntity to a minimum (as of now) for these reasons:
/// 1. It should ease the creation of templates.
/// 2. Promotes use of templates and flexibility in CLivingEntity class design.
/// 3. More run-time dynamic properties.

class CHumanoidLivingEntity : public IReferenceCounted
{

    public:

        //! Constructor
        CHumanoidLivingEntity( CSkeleton* skeleton_, SLivingEntityData* data_);

        //! Destructor
        ~CHumanoidLivingEntity();

        //! Updates the selected components.
        updateComponents( bool physics, bool graphics, bool logic, bool sound, bool network ); //

        //! Updates all components.
        updateComponents( void );

    private:

        CSkeleton* skeleton; //skeleton
        SLivingEntityData data; //living entity data

}
